package com.lhkj.ct.meta.admin.service;

import com.lhkj.ct.base.model.dto.PageQuery;
import com.lhkj.ct.base.model.Option;
import com.lhkj.ct.base.mybatis.extension.service.IPageService;
import com.lhkj.ct.base.mybatis.extension.service.IService;
import com.lhkj.ct.meta.admin.model.entity.TblOrgan;
import com.lhkj.ct.meta.admin.model.vo.OrganTreeVo;
import com.lhkj.ct.meta.admin.model.dto.OrganForm;

import java.util.List;

/**
 * <p>
 * 机构表 服务类
 * </p>
 *
 * @author jobob
 * @since 2023-09-12
 */
public interface SysOrganService extends IService<TblOrgan>, IPageService<TblOrgan> {

    /**
     * 机构列表(树级结构）
     */
    List<OrganTreeVo> listOrgans(TblOrgan organ, PageQuery pageQuery);

    /**
     * 机构下拉框列表
     */
    List<Option<String>> listOptions();

    /**
     * 保存机构
     */
    int saveOrgan(OrganForm organForm);

    /**
     * 校验机构编码是否唯一
     */
    boolean checkCodeUnique(TblOrgan tblOrgan);

    /**
     * 校验机构是否含有子机构
     */
    boolean hasChildOrgan(String organId);

    /**
     * 校验机构底下是否含有部门
     */
    boolean hasDept(String organId);
}
